/*
 * Copyright (c) 2025 Industrial Software Feature Database
 */
package com.comac.ins.isfd.service;

import com.comac.ins.isfd.constant.enums.IsfdMeshOp2BoStatusEnum;
import com.comac.ins.isfd.domain.IsfdMeshOp2CompareResultData;
import com.comac.ins.isfd.domain.IsfdMeshOp2RecordData;
import com.comac.ins.isfd.domain.IsfdMeshOp2RecordSubResult;
import com.comac.ins.isfd.domain.bo.IsfdMeshOp2InfoBo;
import com.comac.ins.isfd.domain.bo.IsfdMeshOp2QueryBo;
import org.bson.Document;

import java.util.List;
import java.util.Map;

/**
 * 自然网格结果service
 *
 * @author lj
 * @date 2025-01-15
 */
public interface IIsfdMeshOP2ParseService {

    void parseAndSaveResultByType(IsfdMeshOp2InfoBo infoBo);

    void updateStatusByUploadId(String uploadId, IsfdMeshOp2BoStatusEnum status, String parser, String parseTaskId, String message);

    Boolean OP2ParseInfoExists(IsfdMeshOp2InfoBo infoBo);

    List<IsfdMeshOp2RecordData> findOP2Records(IsfdMeshOp2QueryBo queryBo);

    List<IsfdMeshOp2RecordSubResult> findOP2RecordSubResults(IsfdMeshOp2QueryBo queryBo);

    IsfdMeshOp2CompareResultData getResultData(IsfdMeshOp2QueryBo queryBo);

    List<Document> getAllRecords(String collectionName, String resultName, Integer subCaseId, int page, int pageSize);

    Map<String, List<Integer>> getSampleElements(String uploadId, int page, int pageSize);

    String executeSimRightParser(IsfdMeshOp2InfoBo infoBo );

    void executeParse(List<String> uploadIds);

    int deleteOp2ParseRecords(String uploadId);









}
